package com.sy.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sy.pojo.Courses;
import com.sy.vo.HotCourseVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CoursesMapper extends BaseMapper<Courses> {
    int deleteByPrimaryKey(Integer id);

    int insert(Courses record);

    int insertSelective(Courses record);

    Courses selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Courses record);

    int updateByPrimaryKey(Courses record);
     /*
      * @Author Mr.Liu
      * @Description //TODO 根据条件查询课程信息
      * @Date 14:48 2025/11/5
      * @Param [name, status, typeId]
      * @return java.util.List<com.sy.pojo.Courses>
      **/
    List<Courses> queryCourses(@Param("name") String name,
                               @Param("status") Integer status,
                               @Param("typeId") Integer typeId);
    /*
     * @Author Mr.Liu
     * @Description //TODO 用户端的课程列表查询
     * @Date 9:14 2025/11/6
     * @Param [name, typeId]
     * @return java.util.List<com.sy.pojo.Courses>
     **/
    List<Courses> queryCoursesByPage(@Param("name") String name,@Param("typeId") Integer typeId);
    /*
     * @Author Mr.Liu
     * @Description //TODO 根据用户id查询已购买课程信息
     * @Date 10:06 2025/11/13
     * @Param [uid]
     * @return java.util.List<com.sy.pojo.Courses>
     **/
    List<Courses> findCoursesByUid(@Param("uid") Integer uid,
                                   @Param("courseName") String courseName,
                                   @Param("courseType") Integer courseType,
                                   @Param("sortBy") String sortBy);
    /*
     * @Author Mr.Liu
     * @Description //TODO 分组查询热门课程
     * @Date 10:15 2025/11/14
     * @Param [limit]
     * @return java.util.List<com.sy.vo.HotCourseVO>
     **/
    List<HotCourseVO> courseHot(Integer limit);
}